Skip to content

Conversation

@bdrodes
Copy link

@bdrodes bdrodes commented Jan 15, 2026

False positive clean up for cpp/microsoft/public/leap-year/unchecked-after-arithmetic-year-modification. Reduces FPs by 85%.

ropwareJB and others added 30 commits December 18, 2025 12:30
…to a more precise ignorable operation analysis. Ignorable operations that flow to a possible source also invalidate that source. Also added a root source finder to get the earliest source if many exist. Modified the leap year checker finder to use a new dataflow mechanic that flows from a YearFieldAccess.
… constant being a literal, but a known value variable or literal.
… ignore certain opeartions. Also added an ignorable function class to be used to ignore operation sources.
…ure they are actually necessary or providing much utility.
…iewing the unit tests and conversations about how to handle some of the fp/fn cases observed. Updated the unit tests to use InlineExpectationsTestQuery.ql so it is easier to detect FP/FNs.
…eds to be generally reassessed but recent test changes alter the expected results.
…efinitions had gaps resulting in false positives and inconsistencies (inconsistent as to what is a guard and what is a function that does a leap year check).
…n on LeapYear.qll. We may need to end up moving new capabilities for this query into LeapYear.qll for other queries in the future. For now, focusing just on improvements to the one query. The only remaining dependency is the TimeConversionFunction class, which is currently used by another query.
…ions are now assumed to be a check of the result, i.e., a valid leap year check.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants